package com.gin.no_gay_alliance.utils;

import android.view.Menu;
import android.view.MenuItem;

import androidx.annotation.IdRes;
import androidx.annotation.NonNull;

import java.lang.reflect.Method;

/**
 * 菜单工具类
 *
 * @author : ginstone
 * @version : v1.0.0
 * @since : 2023/8/14 16:27
 **/
public class MenuUtils {
    /**
     * 强制显示icon
     *
     * @param menu menu
     */
    public static void showMenuIcon(@NonNull Menu menu) {
        if (menu.getClass().getSimpleName().equalsIgnoreCase("MenuBuilder")) {
            try {
                Method method = menu.getClass().getDeclaredMethod("setOptionalIconsVisible", Boolean.TYPE);
                method.setAccessible(true);
                method.invoke(menu, true);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

    /**
     * 设置菜单项的可见性
     *
     * @param menu      菜单
     * @param menuItems 菜单项目id
     * @param visible   可见性
     */
    public static void setVisible(@NonNull Menu menu, boolean visible, @IdRes int... menuItems) {
        if (menuItems != null) {
            for (int id : menuItems) {
                MenuItem menuItem = menu.findItem(id);
                if (menuItem != null) {
                    menuItem.setVisible(visible);
                }
            }
        }
    }
}
